package com.hxzy.common.core.domain.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hxzy.common.annotation.Excel;

import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

@JsonInclude(value = JsonInclude.Include.NON_NULL)
public class PzServiceItem implements Serializable {
    /**
     *
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Excel(name = "参数主键", cellType = Excel.ColumnType.NUMERIC)
    private Long id;

    /**
     * 中介事项名称
     */
    private String serviceName;

    /**
     * 行政审批事项编码
     */
    private String approveItemCode;

    /**
     * 行政审批事项（普通许可、特许、认可、核准、登记）
     */
    private String approveItemName;

    /**
     * 中介资质类型(查询sys_dict_data的值)
     */
    private String serviceTypeId;

    /**
     * 委托方(0：项目业主委托，1：行政机关委托  查询sys_dict_data的值)
     */
    private String consigor;

    /**
     * 中介结构组织机构代码证
     */
    private String certificateCode;

    /**
     * 中介服务事项
     */
    private String certificateMatters;

    /**
     * 资质等级(查询sys_dict_data的值)
     */
    private String certificateGrade;

    /**
     * 资质有效期
     */
    private Date certificateExpired;

    /**
     * 营业执照
     */
    private String certificateImage;

    /**
     * 法定代表人
     */
    private String legalPerson;

    /**
     * 联系人
     */
    private String contacts;

    /**
     * 联系电话
     */
    private String contactsPhone;

    /**
     * 委托类型(查询sys_dict_data的值)
     */
    private String delegateTypeId;

    /**
     * 是否收费(查询sys_dict_data的值 0：否，1：是)
     */
    private String serviceCharge;

    /**
     * 付费方(0：项目业主委托，1：行政机关委托  查询sys_dict_data的值)
     */
    private String payment;

    /**
     * 收费标准及依据
     */
    private String chargeStandard;

    /**
     * 设定依据
     */
    private String setBasis;

    /**
     * 一般办理时限
     */
    private String timeLimit;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(fill = FieldFill.UPDATE)
    private Date updateTime;

    /**
     * 修改人
     */
    @TableField(fill = FieldFill.UPDATE)
    private String updateBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(fill = FieldFill.INSERT)
    @Excel(name = "创建时间",dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 6)
    private Date createTime;

    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getServiceName() {
        return serviceName;
    }

    public void setServiceName(String serviceName) {
        this.serviceName = serviceName;
    }

    public String getApproveItemCode() {
        return approveItemCode;
    }

    public void setApproveItemCode(String approveItemCode) {
        this.approveItemCode = approveItemCode;
    }

    public String getApproveItemName() {
        return approveItemName;
    }

    public void setApproveItemName(String approveItemName) {
        this.approveItemName = approveItemName;
    }

    public String getServiceTypeId() {
        return serviceTypeId;
    }

    public void setServiceTypeId(String serviceTypeId) {
        this.serviceTypeId = serviceTypeId;
    }

    public String getConsigor() {
        return consigor;
    }

    public void setConsigor(String consigor) {
        this.consigor = consigor;
    }

    public String getCertificateCode() {
        return certificateCode;
    }

    public void setCertificateCode(String certificateCode) {
        this.certificateCode = certificateCode;
    }

    public String getCertificateMatters() {
        return certificateMatters;
    }

    public void setCertificateMatters(String certificateMatters) {
        this.certificateMatters = certificateMatters;
    }

    public String getCertificateGrade() {
        return certificateGrade;
    }

    public void setCertificateGrade(String certificateGrade) {
        this.certificateGrade = certificateGrade;
    }

    public Date getCertificateExpired() {
        return certificateExpired;
    }

    public void setCertificateExpired(Date certificateExpired) {
        this.certificateExpired = certificateExpired;
    }

    public String getCertificateImage() {
        return certificateImage;
    }

    public void setCertificateImage(String certificateImage) {
        this.certificateImage = certificateImage;
    }

    public String getLegalPerson() {
        return legalPerson;
    }

    public void setLegalPerson(String legalPerson) {
        this.legalPerson = legalPerson;
    }

    public String getContacts() {
        return contacts;
    }

    public void setContacts(String contacts) {
        this.contacts = contacts;
    }

    public String getContactsPhone() {
        return contactsPhone;
    }

    public void setContactsPhone(String contactsPhone) {
        this.contactsPhone = contactsPhone;
    }

    public String getDelegateTypeId() {
        return delegateTypeId;
    }

    public void setDelegateTypeId(String delegateTypeId) {
        this.delegateTypeId = delegateTypeId;
    }

    public String getServiceCharge() {
        return serviceCharge;
    }

    public void setServiceCharge(String serviceCharge) {
        this.serviceCharge = serviceCharge;
    }

    public String getPayment() {
        return payment;
    }

    public void setPayment(String payment) {
        this.payment = payment;
    }

    public String getChargeStandard() {
        return chargeStandard;
    }

    public void setChargeStandard(String chargeStandard) {
        this.chargeStandard = chargeStandard;
    }

    public String getSetBasis() {
        return setBasis;
    }

    public void setSetBasis(String setBasis) {
        this.setBasis = setBasis;
    }

    public String getTimeLimit() {
        return timeLimit;
    }

    public void setTimeLimit(String timeLimit) {
        this.timeLimit = timeLimit;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        PzServiceItem other = (PzServiceItem) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
                && (this.getServiceName() == null ? other.getServiceName() == null : this.getServiceName().equals(other.getServiceName()))
                && (this.getApproveItemCode() == null ? other.getApproveItemCode() == null : this.getApproveItemCode().equals(other.getApproveItemCode()))
                && (this.getApproveItemName() == null ? other.getApproveItemName() == null : this.getApproveItemName().equals(other.getApproveItemName()))
                && (this.getServiceTypeId() == null ? other.getServiceTypeId() == null : this.getServiceTypeId().equals(other.getServiceTypeId()))
                && (this.getConsigor() == null ? other.getConsigor() == null : this.getConsigor().equals(other.getConsigor()))
                && (this.getCertificateCode() == null ? other.getCertificateCode() == null : this.getCertificateCode().equals(other.getCertificateCode()))
                && (this.getCertificateMatters() == null ? other.getCertificateMatters() == null : this.getCertificateMatters().equals(other.getCertificateMatters()))
                && (this.getCertificateGrade() == null ? other.getCertificateGrade() == null : this.getCertificateGrade().equals(other.getCertificateGrade()))
                && (this.getCertificateExpired() == null ? other.getCertificateExpired() == null : this.getCertificateExpired().equals(other.getCertificateExpired()))
                && (this.getCertificateImage() == null ? other.getCertificateImage() == null : this.getCertificateImage().equals(other.getCertificateImage()))
                && (this.getLegalPerson() == null ? other.getLegalPerson() == null : this.getLegalPerson().equals(other.getLegalPerson()))
                && (this.getContacts() == null ? other.getContacts() == null : this.getContacts().equals(other.getContacts()))
                && (this.getContactsPhone() == null ? other.getContactsPhone() == null : this.getContactsPhone().equals(other.getContactsPhone()))
                && (this.getDelegateTypeId() == null ? other.getDelegateTypeId() == null : this.getDelegateTypeId().equals(other.getDelegateTypeId()))
                && (this.getServiceCharge() == null ? other.getServiceCharge() == null : this.getServiceCharge().equals(other.getServiceCharge()))
                && (this.getPayment() == null ? other.getPayment() == null : this.getPayment().equals(other.getPayment()))
                && (this.getChargeStandard() == null ? other.getChargeStandard() == null : this.getChargeStandard().equals(other.getChargeStandard()))
                && (this.getSetBasis() == null ? other.getSetBasis() == null : this.getSetBasis().equals(other.getSetBasis()))
                && (this.getTimeLimit() == null ? other.getTimeLimit() == null : this.getTimeLimit().equals(other.getTimeLimit()))
                && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
                && (this.getUpdateBy() == null ? other.getUpdateBy() == null : this.getUpdateBy().equals(other.getUpdateBy()))
                && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
                && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
                && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getServiceName() == null) ? 0 : getServiceName().hashCode());
        result = prime * result + ((getApproveItemCode() == null) ? 0 : getApproveItemCode().hashCode());
        result = prime * result + ((getApproveItemName() == null) ? 0 : getApproveItemName().hashCode());
        result = prime * result + ((getServiceTypeId() == null) ? 0 : getServiceTypeId().hashCode());
        result = prime * result + ((getConsigor() == null) ? 0 : getConsigor().hashCode());
        result = prime * result + ((getCertificateCode() == null) ? 0 : getCertificateCode().hashCode());
        result = prime * result + ((getCertificateMatters() == null) ? 0 : getCertificateMatters().hashCode());
        result = prime * result + ((getCertificateGrade() == null) ? 0 : getCertificateGrade().hashCode());
        result = prime * result + ((getCertificateExpired() == null) ? 0 : getCertificateExpired().hashCode());
        result = prime * result + ((getCertificateImage() == null) ? 0 : getCertificateImage().hashCode());
        result = prime * result + ((getLegalPerson() == null) ? 0 : getLegalPerson().hashCode());
        result = prime * result + ((getContacts() == null) ? 0 : getContacts().hashCode());
        result = prime * result + ((getContactsPhone() == null) ? 0 : getContactsPhone().hashCode());
        result = prime * result + ((getDelegateTypeId() == null) ? 0 : getDelegateTypeId().hashCode());
        result = prime * result + ((getServiceCharge() == null) ? 0 : getServiceCharge().hashCode());
        result = prime * result + ((getPayment() == null) ? 0 : getPayment().hashCode());
        result = prime * result + ((getChargeStandard() == null) ? 0 : getChargeStandard().hashCode());
        result = prime * result + ((getSetBasis() == null) ? 0 : getSetBasis().hashCode());
        result = prime * result + ((getTimeLimit() == null) ? 0 : getTimeLimit().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getUpdateBy() == null) ? 0 : getUpdateBy().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", serviceName=").append(serviceName);
        sb.append(", approveItemCode=").append(approveItemCode);
        sb.append(", approveItemName=").append(approveItemName);
        sb.append(", serviceTypeId=").append(serviceTypeId);
        sb.append(", consigor=").append(consigor);
        sb.append(", certificateCode=").append(certificateCode);
        sb.append(", certificateMatters=").append(certificateMatters);
        sb.append(", certificateGrade=").append(certificateGrade);
        sb.append(", certificateExpired=").append(certificateExpired);
        sb.append(", certificateImage=").append(certificateImage);
        sb.append(", legalPerson=").append(legalPerson);
        sb.append(", contacts=").append(contacts);
        sb.append(", contactsPhone=").append(contactsPhone);
        sb.append(", delegateTypeId=").append(delegateTypeId);
        sb.append(", serviceCharge=").append(serviceCharge);
        sb.append(", payment=").append(payment);
        sb.append(", chargeStandard=").append(chargeStandard);
        sb.append(", setBasis=").append(setBasis);
        sb.append(", timeLimit=").append(timeLimit);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", updateBy=").append(updateBy);
        sb.append(", createTime=").append(createTime);
        sb.append(", createBy=").append(createBy);
        sb.append(", delFlag=").append(delFlag);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }


}
